export default class History {
  constructor() {
    this.items = []; // 数据的数组
    this.current = 0; //  当前位置
  }
  size() {
    return this.items.length;
  }
  insert(element) {
    if (this.items.length === 0) {
      // 首次插入的值
      this.items.push(element);
    } else {
      // 再插入就把当前位置current后面的数据都删除再插入
      this.items.splice(this.current + 1, this.size(), element);
      this.current++;
    }
  }
  // 前进 Ctrl+Y
  forword() {
    if (this.size() === 0) return "";
    if (this.current < this.size() - 1) {
      return this.items[++this.current];
    } else if (this.current === this.size() - 1) {
      // 数组最末端
      return this.items[this.current];
    }
  }
  // 后退 Ctrl+Z
  back() {
    if (this.size() === 0) return "";
    if (this.current > 0) {
      return this.items[--this.current];
    } else if (this.current === 0) {
      // 数组最前端
      return this.items[0];
    }
  }
  // 查看该类的数组
  log() {
    return this.items;
  }
}
